package com.ruoyi.web.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品管理对象 pj_products
 * 
 * @author mike
 * @date 2024-12-21
 */
public class PjProducts extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 商品ID */
    private Long productId;

    /** 商品名 */
    @Excel(name = "商品名")
    private String productName;

    /** 商品编码，方便管理和识别 */
    @Excel(name = "商品编码，方便管理和识别")
    private String productCode;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private BigDecimal price;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long stock;

    /** 商品分类，比如电子产品、服装等 */
    @Excel(name = "商品分类，比如电子产品、服装等")
    private String category;

    /** 子分类，更细分的类别 */
    @Excel(name = "子分类，更细分的类别")
    private String subCategory;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String description;

    /** 存储多个商品图片链接，用特定分隔符隔开（可自行定义格式） */
    @Excel(name = "存储多个商品图片链接，用特定分隔符隔开", readConverterExp = "可=自行定义格式")
    private String imageUrls;

    /** 商品重量（单位可自定义，比如千克等） */
    @Excel(name = "商品重量", readConverterExp = "单=位可自定义，比如千克等")
    private BigDecimal weight;

    /** 商品尺寸，格式自行定义（如长x宽x高） */
    @Excel(name = "商品尺寸，格式自行定义", readConverterExp = "如=长x宽x高")
    private String size;

    /** 商品品牌 */
    @Excel(name = "商品品牌")
    private String brand;

    /** 商品标签，用于搜索等场景，用特定分隔符隔开 */
    @Excel(name = "商品标签，用于搜索等场景，用特定分隔符隔开")
    private String tags;

    /** 是否在售，1为在售，0为下架 */
    @Excel(name = "是否在售，1为在售，0为下架")
    private Integer isOnSale;

    /** 折扣率，如0.8表示8折，默认1.0即无折扣 */
    @Excel(name = "折扣率，如0.8表示8折，默认1.0即无折扣")
    private BigDecimal discountRate;

    public void setProductId(Long productId) 
    {
        this.productId = productId;
    }

    public Long getProductId() 
    {
        return productId;
    }
    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }
    public void setProductCode(String productCode) 
    {
        this.productCode = productCode;
    }

    public String getProductCode() 
    {
        return productCode;
    }
    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }
    public void setStock(Long stock) 
    {
        this.stock = stock;
    }

    public Long getStock() 
    {
        return stock;
    }
    public void setCategory(String category) 
    {
        this.category = category;
    }

    public String getCategory() 
    {
        return category;
    }
    public void setSubCategory(String subCategory) 
    {
        this.subCategory = subCategory;
    }

    public String getSubCategory() 
    {
        return subCategory;
    }
    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }
    public void setImageUrls(String imageUrls) 
    {
        this.imageUrls = imageUrls;
    }

    public String getImageUrls() 
    {
        return imageUrls;
    }
    public void setWeight(BigDecimal weight) 
    {
        this.weight = weight;
    }

    public BigDecimal getWeight() 
    {
        return weight;
    }
    public void setSize(String size) 
    {
        this.size = size;
    }

    public String getSize() 
    {
        return size;
    }
    public void setBrand(String brand) 
    {
        this.brand = brand;
    }

    public String getBrand() 
    {
        return brand;
    }
    public void setTags(String tags) 
    {
        this.tags = tags;
    }

    public String getTags() 
    {
        return tags;
    }
    public void setIsOnSale(Integer isOnSale) 
    {
        this.isOnSale = isOnSale;
    }

    public Integer getIsOnSale() 
    {
        return isOnSale;
    }
    public void setDiscountRate(BigDecimal discountRate) 
    {
        this.discountRate = discountRate;
    }

    public BigDecimal getDiscountRate() 
    {
        return discountRate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("productId", getProductId())
            .append("productName", getProductName())
            .append("productCode", getProductCode())
            .append("price", getPrice())
            .append("stock", getStock())
            .append("category", getCategory())
            .append("subCategory", getSubCategory())
            .append("description", getDescription())
            .append("imageUrls", getImageUrls())
            .append("weight", getWeight())
            .append("size", getSize())
            .append("brand", getBrand())
            .append("tags", getTags())
            .append("isOnSale", getIsOnSale())
            .append("discountRate", getDiscountRate())
            .toString();
    }
}
